插入排序的主要精神在迴圈抓出每個值,並且向陣列左方的每個值逐一比較大小,如果比較小則將值左右交換,如此最小值會被插入在最前面。
完整程式碼如下:
function insertionSort(arr){
for(let i=0;i<arr.length;i++){
let pickIndex=i;
const insertValue=arr[i];
//If the previous value is bigger than this value,we change both.
while(i>=0 && arr[pickIndex-1] > insertValue){
[arr[pickIndex],arr[pickIndex-1]]=[arr[pickIndex-1],arr[pickIndex]];
pickIndex--;
}
}
return arr;
}
const arr=[7,5,1,20,8];
console.log(insertionSort(arr));